package demo3;

public class Test {

    public static void main(String[] args) {

        //向下转型 --- instanceof的使用

        Person person = new Son();//向上转型

        //person.play();//发生多态 -- 调用子类Son的方法


        Son s = (Son)person;//向下转型 --- 需要强制类型转换，因为左右俩边的值不同
        //但是强制类型转换存在风险，就需要介入instaceof判断是否引用该子类的对象
        //我们通过向下类型转换，就可以调用到子类特有的方法

        s.eat();
        //person.eat();//向上转换是不能调用到子类特有的方法的

        if(person instanceof Son) {
            System.out.println("person引用的是Son");
        } else {
            System.out.println("person不是引用Son");
        }

        if(person instanceof Sister) {
            System.out.println("person引用的是Sister");
        } else {
            System.out.println("person不是引用Sister");
        }


    }

}
